package com.example.ai.controller;


import com.example.ai.assistant.WuAiAgent;
import com.example.ai.bean.ChatForm;
import com.example.ai.utils.CurrentHoler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Flux;



/**
 * 无爱咖啡智能客服控制器
 * 提供智能客服对话的HTTP接口，处理用户消息并返回AI响应
 *
 * @author czwa
 */
@CrossOrigin
@RestController
@RequestMapping("/wuai")
public class WuAiController {

        @Autowired
        private WuAiAgent wuAiAgent;

        /**
         * 智能客服对话接口
         * 接收用户消息，调用AI代理处理，并流式返回AI响应
         *
         * @param chatForm 包含memoryId和message的表单对象
         * @return 流式响应内容
         */
        @PostMapping("/chat")
        public Flux<String> chat(@RequestBody ChatForm chatForm) {
                // 设置当前请求的对话记忆ID
                CurrentHoler.set(chatForm.getMemoryId());

                // 调用AI代理处理对话，并返回流式响应
                return wuAiAgent.chat(chatForm.getMemoryId(), chatForm.getMessage());
        }
}